#include <bits/stdc++.h>

using namespace std;
struct Big
{
    int d[1000];
    int len;
    Big()
    {
        memset(d,0,sizeof(d));
        len=0;
    }
};
Big str2Big(char str[])
{
    Big a;
    a.len=strlen(str);
    for (int i=0;i<a.len ;++i )
    {
        a.d[i]=str[a.len-i-1]-'0';
    }
    return a;
}
Big multiBig(Big a,int b)
{
    Big c;
    int carry=0,temp;
    for (int i=0;i<a.len ;++i )
    {
        temp=a.d[i]*b+carry;
        c.d[c.len++]=temp%10;
        carry=temp/10;
    }
    while (carry!=0)
    {
        c.d[c.len++]=carry%10;
        carry/=10;
    }
    return c;
}
void printBig(Big a)
{
    for (int i=a.len-1;i>=0 ;--i )
    {
        printf("%d",a.d[i]);
    }
}

int main_1023()
{
    char N[21]={0},NN[30]={0};
    scanf("%s",N);
    Big a=str2Big(N);
    Big aa=multiBig(a,2);
    for (int i=0;i<aa.len ;++i )
    {
        NN[i]=aa.d[aa.len-i-1]+'0';
    }
    sort(N,N+strlen(N));
    sort(NN,NN+strlen(NN));
    if (strcmp(N,NN)==0)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
    printBig(aa);
    return 0;
}
